One important aspect of any computer system is the interface that allows a user to input commands and data, and to receive the results of operations performed within the computer. One common type of user interface that has enjoyed increased success in the personal computer arena is the graphical user interface (GUI). GUIs provide users with an easy-to-use interface to complex computer file systems. For example, a user can access documents and applications stored in a computer system by way of icons that function as graphical representations of files, and the directories in which they are stored.
Several pointing devices have been developed to facilitate a user's ability to interact with icons, to access information within the computer's file system. Some examples of pointing devices or cursor control devices that provide a user with a physical interface to the computer's resources include an electronic stylus, a mouse, a trackball, or the like. Such devices allow the user to manipulate a cursor within a virtual desktop environment, or other GUI, to interact with files or applications of the computer system.
Typically, the cursor controlled by a such a device is displayed in the form of a pointer or arrow. The appearance of this cursor can be varied to convey certain information to the user. For example, the cursor can change shape from a pointer to a text-insertion-point cursor when the user moves the cursor over editable text, or text entry fields. Additionally, a cursor can take on different appearances depending upon functionalities offered by various applications currently running on the computer system. For example, if a user is allowed to magnify a certain portion of the computer screen, the cursor might appear in the form of a magnifying glass. The ability to scroll a document with the cursor control device might be indicated by displaying the cursor in the form of a hand, which appears to grab a page of the document and reposition that page in response to movement of the cursor control device. Likewise, when using graphics applications, a user may be presented with a variety of different drawing tools depending upon the desired functionality to be provided by the cursor control device. For example, the cursor might be displayed in the form of a pencil, a paintbrush, a spray paint can, “cross-hairs” for drawing simple geometric shapes, or any other shape that conveys helpful information to a user.
In addition to changing the cursor in response to functionality offered by various applications, the cursor may be changed in response to commands or status information from the operating system or its interface. One common example of such a cursor change occurs when the operating system communicates to the user that the system is busy. For example, an operating system might change the cursor so that it appears to be a watch, indicating to the user that the system is busy and requires time to complete current processing operations. Various operating systems make use of different cursor shapes that accomplish the same objective, such as an hour glass, a rotating pinwheel, or the like. The exact appearance of the cursor may vary, but the information communicated to the user is the same; namely, a time-out situation has occurred while the system is busy processing operations.
These prior approaches conveyed some information to the user regarding an operation to be performed or the processing state of the computer, and it is desirable to expand upon this ability to provide the user with information regarding a current operation. For example, a user running a number of applications might see the “busy” cursor, or “wait” cursor, which would cause that user to wait for the computer to return to a normal processing state from its current busy state. The user might be discouraged from attempting to access other applications, thinking that the wait cursor indicated that the entire computer operating system was in a busy state. However, this may not be the case, and only the current application might be in a busy state. This becomes especially problematic when an error occurs, causing the current application to become “hung,” or permanently stalled. In such an instance, the user might wait for extended periods of time, losing productivity and experiencing increasing levels of aggravation, because of the inability for the operating system to convey to the user that only the current application is busy, and that the user may access other applications or operating system commands immediately if desired.
Another situation in which it is useful to provide the user with meaningful feedback is in the context of move and copy operations. For instance, when a user drags a file to a destination, the result of that dragging operation may depend on the relationship of the source and destination locations. If the file is dragged from one folder on the desktop to another folder on the desktop, the file might be moved between the two folders, whereas if the file is dragged from a desktop folder to a floppy disk or network drive, it might be copied at the destination location. If the user intended to copy the file at the destination, but only ended up moving it, frustration could ensue when the user looks for the file at the original location. It is therefore helpful to provide the user with an indication whether the dragging operation will result in a move or a copy before it is completed.
Often, a user might drag several files to a destination having limited capacity, e.g. a floppy disk. The user may not be aware of the fact that the cumulative size of the files exceeds the capacity of the storage disk, until after the copy operation has commenced, and an error message is generated. In such a case, the user may need to remove some of the files that were copied onto the disk, in order to make room for other, uncopied files which may have a higher priority.
The foregoing examples are illustrative of some of the situations in which it is desirable to provide the user with feedback regarding the current state of the computer and/or the result of an operation before it is completed. The present invention is directed to the use of the cursor to provide such feedback.